package com.lazily.homework;


import java.util.Scanner;

/**
 * @Author: GZQ
 * @date: 2025/4/13 15:40
 * @description: 信息录入
 * @verson: 1.0
 */

public class Homework02 {
	// 程序入口
	public static void main(String[] args) {
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入用户名");
		String name = myScanner.next();

		System.out.println("请输入密码");
		String pwd = myScanner.next();

		System.out.println("请输入邮箱");
		String email = myScanner.next();

		try {
			UserRegister(name, pwd, email);
			System.out.println("恭喜你, 注册成功~");
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}
	}

	/**
	 * 输入用户名、密码、邮箱、如果信息录入正确，则提示注册成功, 否则生成异常对象
	 * 要求:
	 * (1) 用户名长度为2或3或4
	 * (2) 密码的长度为6, 要求全是数字 isDigital
	 * (3) 邮箱中包含@和. 并且@在.的前面
	 * <p>
	 * 思路分析
	 * 1. 先编写方法 UserRegister(String name, String pwd, String email) {}
	 * 2. 针对输入的内容进行校验， 如果发现有问题，就抛出异常，给出提示
	 * 3. 单独的写一个方法， 判断 密码是否是数字字符 boolean
	 */

	public static void UserRegister(String name, String pwd, String email) {

		// 其他校验
		if (!(name != null && pwd != null && email != null)) {
			throw new RuntimeException("参数不能为空");
		}

		// 过关
		// 第一关
		int userlength = name.length();
		if (!(userlength >= 2 && userlength <= 4)) {
			throw new RuntimeException("用户名长度为2或3或4");
		}

		// 第二关
		if (!(pwd.length() == 6 && isDigital(pwd))) {
			throw new RuntimeException("密码的长度为6, 要求全是数字");
		}

		// 第三关
		int i = email.indexOf('@');
		int j = email.indexOf('.');
		if (!(i > 0 && j > i)) {
			throw new RuntimeException("邮箱中要包含@和. 并且@在.的前面");
		}

	}

	// 单独的写一个方法， 判断 密码是否是数字字符 boolean
	public static boolean isDigital(String str) {
		char[] ch = str.toCharArray();
		for (int i = 0; i < ch.length; i++) {
			if (ch[i] < '0' || ch[i] > '9') {
				return false;
			}
		}
		return true;
	}

}
